using System.Collections.Generic;
using Microsoft.WindowsAzure.ServiceRuntime;

namespace AzureContrib.WindowsAzure.ServiceRuntime
{
	/// <summary>
	/// Contract for <see cref="RoleInstance"/>
	/// </summary>
	public interface IRoleInstance
	{
		/// <summary>
		/// <see cref="RoleInstance.Id"/>
		/// </summary>
		string Id { get; }

		/// <summary>
		/// <see cref="RoleInstance.UpdateDomain"/>
		/// </summary>
		int UpdateDomain { get; }

		/// <summary>
		/// <see cref="RoleInstance.FaultDomain"/>
		/// </summary>
		int FaultDomain { get; }

		/// <summary>
		/// <see cref="RoleInstance.Role"/>
		/// </summary>
		IRole Role { get; }

		/// <summary>
		/// <see cref="RoleInstance.InstanceEndpoints"/>
		/// </summary>
		IDictionary<string, IRoleInstanceEndpoint> InstanceEndpoints { get; }
	}
}